/*--------------------------------*- C++ -*----------------------------------*\
  =========                 |
  \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
   \\    /   O peration     | Website:  https://openfoam.org
    \\  /    A nd           | Version:  7
     \\/     M anipulation  |
\*---------------------------------------------------------------------------*/
FoamFile
{
    version     2.0;
    format      ascii;
    class       dictionary;
    object      blockMeshDict;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //

convertToMeters 1;

X0 0;
X1 50;
X2 60;
X3 160;

Y0 0;
Y1 50;
Y2 60;
Y3 110;

Z0 0;
Z1 50;
Z2 100;

NX1 40;
NX2 20;
NX3 50;

NY1 40;
NY2 20;

NZ1 60;
NZ2 40;

xratio1 0.2;
xratio2 10;

yratio1 0.2;
yratio2 5;

zratio1 2.5;
zratio2 0.4;
zratio3 5;

vertices
(
	($X0 $Y0 $Z0)
	($X1 $Y0 $Z0)
	($X2 $Y0 $Z0)
	($X3 $Y0 $Z0)
	($X0 $Y1 $Z0)
	($X1 $Y1 $Z0)
	($X2 $Y1 $Z0)
	($X3 $Y1 $Z0)
	($X0 $Y2 $Z0)
	($X1 $Y2 $Z0)
	($X2 $Y2 $Z0)
	($X3 $Y2 $Z0)
	($X0 $Y3 $Z0)
	($X1 $Y3 $Z0)
	($X2 $Y3 $Z0)
	($X3 $Y3 $Z0)
	($X0 $Y0 $Z1)
	($X1 $Y0 $Z1)
	($X2 $Y0 $Z1)
	($X3 $Y0 $Z1)
	($X0 $Y1 $Z1)
	($X1 $Y1 $Z1)
	($X2 $Y1 $Z1)
	($X3 $Y1 $Z1)
	($X0 $Y2 $Z1)
	($X1 $Y2 $Z1)
	($X2 $Y2 $Z1)
	($X3 $Y2 $Z1)
	($X0 $Y3 $Z1)
	($X1 $Y3 $Z1)
	($X2 $Y3 $Z1)
	($X3 $Y3 $Z1)
	($X0 $Y0 $Z2)
	($X1 $Y0 $Z2)
	($X2 $Y0 $Z2)
	($X3 $Y0 $Z2)
	($X0 $Y1 $Z2)
	($X1 $Y1 $Z2)
	($X2 $Y1 $Z2)
	($X3 $Y1 $Z2)
	($X0 $Y2 $Z2)
	($X1 $Y2 $Z2)
	($X2 $Y2 $Z2)
	($X3 $Y2 $Z2)
	($X0 $Y3 $Z2)
	($X1 $Y3 $Z2)
	($X2 $Y3 $Z2)
	($X3 $Y3 $Z2)
);

blocks
(
	hex (0 1 5 4 16 17 21 20) ($NX1 $NY1 $NZ1) simpleGrading ($xratio1 $yratio1 ((0.5 0.5 $zratio1) (0.5 0.5 $zratio2)))
	hex (1 2 6 5 17 18 22 21) ($NX2 $NY1 $NZ1) simpleGrading (1 $yratio1 ((0.5 0.5 $zratio1) (0.5 0.5 $zratio2)))
	hex (2 3 7 6 18 19 23 22) ($NX3 $NY1 $NZ1) simpleGrading ($xratio2 $yratio1 ((0.5 0.5 $zratio1) (0.5 0.5 $zratio2)))

	hex (4 5 9 8 20 21 25 24) ($NX1 $NY2 $NZ1) simpleGrading ($xratio1 1 ((0.5 0.5 $zratio1) (0.5 0.5 $zratio2)))
	hex (6 7 11 10 22 23 27 26) ($NX3 $NY2 $NZ1) simpleGrading ($xratio2 1 ((0.5 0.5 $zratio1) (0.5 0.5 $zratio2)))

	hex (8 9 13 12 24 25 29 28) ($NX1 $NY1 $NZ1) simpleGrading ($xratio1 $yratio2 ((0.5 0.5 $zratio1) (0.5 0.5 $zratio2)))
	hex (9 10 14 13 25 26 30 29) ($NX2 $NY1 $NZ1) simpleGrading (1 $yratio2 ((0.5 0.5 $zratio1) (0.5 0.5 $zratio2)))
	hex (10 11 15 14 26 27 31 30) ($NX3 $NY1 $NZ1) simpleGrading ($xratio2 $yratio2 ((0.5 0.5 $zratio1) (0.5 0.5 $zratio2)))

	hex (16 17 21 20 32 33 37 36) ($NX1 $NY1 $NZ2) simpleGrading ($xratio1 $yratio1 $zratio3)
	hex (17 18 22 21 33 34 38 37) ($NX2 $NY1 $NZ2) simpleGrading (1 $yratio1 $zratio3)
	hex (18 19 23 22 34 35 39 38) ($NX3 $NY1 $NZ2) simpleGrading ($xratio2 $yratio1 $zratio3)

	hex (20 21 25 24 36 37 41 40) ($NX1 $NY2 $NZ2) simpleGrading ($xratio1 1 $zratio3)
	hex (21 22 26 25 37 38 42 41) ($NX2 $NY2 $NZ2) simpleGrading (1 1 $zratio3)
	hex (22 23 27 26 38 39 43 42) ($NX3 $NY2 $NZ2) simpleGrading ($xratio2 1 $zratio3)

	hex (24 25 29 28 40 41 45 44) ($NX1 $NY1 $NZ2) simpleGrading ($xratio1 $yratio2 $zratio3)
	hex (25 26 30 29 41 42 46 45) ($NX2 $NY1 $NZ2) simpleGrading (1 $yratio2 $zratio3)
	hex (26 27 31 30 42 43 47 46) ($NX3 $NY1 $NZ2) simpleGrading ($xratio2 $yratio2 $zratio3)
);

edges
(
);

boundary
(
	inlet
	{
		type		patch;
		faces
		(
			(0 4 20 16)
			(4 8 24 20)
			(8 12 28 24)
			(16 20 36 32)
			(20 24 40 36)
			(24 28 44 40)
		);
	}

	outlet
	{
		type		patch;
		faces
		(
			(3 7 23 19)
			(7 11 27 23)
			(11 15 31 27)
			(19 23 39 35)
			(23 27 43 39)
			(27 31 47 43)
		);
	}

	building
	{
		type		wall;
		faces
		(
			(21 22 26 25)
			(5 9 25 21)
			(6 10 26 22)
			(5 6 22 21)
			(9 10 26 25)
		);
	}

	ground
	{
		type		wall;
		faces
		(
			(0 1 5 4)
			(1 2 6 5)
			(2 3 7 6)
			(4 5 9 8)
			(6 7 11 10)
			(8 9 13 12)
			(9 10 14 13)
			(10 11 15 14)
		);
	}

	frontAndBack
	{
		type		symmetry;
		faces
		(
			(0 1 17 16)
			(1 2 18 17)
			(2 3 19 18)
			(16 17 33 32)
			(17 18 34 33)
			(18 19 35 34)

			(12 13 29 28)
			(13 14 30 29)
			(14 15 31 30)
			(28 29 45 44)
			(29 30 46 45)
			(30 31 47 46)

			(32 33 37 36)
			(33 34 38 37)
			(34 35 39 38)
			(36 37 41 40)
			(37 38 42 41)
			(38 39 43 42)
			(40 41 45 44)
			(41 42 46 45)
			(42 43 47 46)
		);
	}
);

mergePatchPairs
(
);

// ************************************************************************* //
